package rbac.dao;

import java.util.List;

import rbac.entity.RbacPermission;


/**
 * RBAC DAO 接口, 负责提供<strong>权限</strong>实体与数据库交互的方法.<br>
 * 该接口供开发人员开发阶段编辑权限使用, 系统发布时不应提供此接口.
 * 
 * @author Huadi
 * @author Zoufengyang
 */
public interface PermissionDao {

	/**
	 * 获得一个 <code>Permission</code>.
	 * 
	 * @param id
	 * @return <code>RbacPermission</code> 实体. 如果不存在, 返回 <code>null</code>.
	 */
	RbacPermission getPermission(Integer id);

	/**
	 * 获得所有 <code>Permission</code>.
	 */
	List<RbacPermission> getAllPermissions();

	/**
	 * 保存一个 <code>Permission</code>.
	 * 
	 * @param permission
	 */
	void save(RbacPermission permission);

	/**
	 * 修改一个 <code>Permission</code>.
	 * 
	 * @param permission
	 */
	void update(RbacPermission permission);

	/**
	 * 删除一个 <code>Permission</code>.
	 * 
	 * @param permission
	 *            <code>Permission</code> 实体.
	 */
	void delete(RbacPermission permission);

	/**
	 * 删除一个 <code>Permission</code>.
	 * 
	 * @param id
	 *            <code>Permission</code> ID.
	 */
	void delete(Integer id);

}
